;(function(win){
   //设置UI的设计稿尺寸大小
   var uiw = 750; //两倍设计稿（以iphone的375的屏为例）
   //屏幕的横屏或窗口缩放时都应该重新计算
   var supportsOrientationChange = 'onorientationchange' in window ? 'orientationchange' : 'resize';
   //定义一个方法，用于计算文字大小
   function setRem(){
      var winW = win.innerWidth;//获取当前窗口的宽度
      winW = winW>=750?750:winW 
      var p = winW / uiw * 2 * 100;//计算按照等比例的根元素字体大小
      document.documentElement.style.fontSize = p + 'px';//设置根元素字体 
   }

   //为了优化窗口在频繁的缩放时过度的计算和DOM操作导致浏览器频繁计算和渲染
   function debounce(fn, delay) {//fn 就是需要去执行的函数 , delay需要控制防抖的时间间隔
      var delay = delay || 300;
      var timer = null;
      return function () {
          timer && clearTimeout(timer);
          //  console.log(this); // = > dom
          var _this = this;
          timer = setTimeout(function () {
             // this = > window
              fn.apply(_this,arguments);//用_this 对象的身份去执行fn函数 ，所以fn函数内部的this就是_this
          }, delay)
      }
  }

   //绑定事件 ，当窗口的宽度发生变化时重新计算根元素字体大小
   window.addEventListener(supportsOrientationChange,debounce(setRem));
   // 首次执行
   window.onload=setRem;

   // win.onresize=function(){
   //    setRem();
   // }

})(window)

